package com.bidevalution.business.service;

import com.bidevalution.dao.entity.BeSectionDecrypt;
import com.qtp.core.model.Paging;
import com.qtp.user.models.SysParams;

import java.util.List;

/**
 * 标书解密业务接口
 * @author shenh@glodon.com
 * @date 2019-05-06 10:11
 */
public interface BeSectionDecryptService {

    /**
     * 获取投标单位解密信息（关联签到表）
     * @param sectionId 标段Id
     * @param orgCode 企业组织机构代码
     * @return
     * @throws Exception
     */
    BeSectionDecrypt getBeSectionDecryptInfo(String sectionId, String orgCode) throws Exception;

    /**
     * 获取投标单位解密信息（不关联签到表）
     * @param sectionId
     * @param orgCode
     * @return
     * @throws Exception
     */
    BeSectionDecrypt getBeSectionDecryptInfoByCode(String sectionId, String orgCode) throws Exception;

    /**
     * 获取投标单位解密列表
     * @param sectionId 标段Id
     * @param page 分页参数
     * @param rp 分页参数
     * @return
     * @throws Exception
     */
    Paging<List<BeSectionDecrypt>> getBeSectionDecryptList(String sectionId, int page, int rp) throws Exception;

    /**
     * 获取已解密的投标文件数量
     * @param sectionId
     * @return
     * @throws Exception
     */
    Long getDecryptedCount(String sectionId) throws Exception;

    /**
     * 保存解密信息
     * @param sectionId 标段Id
     * @param orgCode 企业ID
     * @param keyValue
     * @return
     * @throws Exception
     */
    Integer saveKeyValue(String sectionId, String orgCode, String keyValue) throws Exception;

    /**
     *  获得统一登录一条配置备注信息
     * @param patpCode 参数类型
     * @return
     * @throws Exception
     */
    SysParams getOneSysParams(String patpCode) throws Exception;

    /**
     * 获取解密开始时间
     * @param sectionId
     * @return
     * @throws Exception
     */
    String getDecryptedStartTime(String sectionId) throws Exception;

    /**
     * 更新备份文件导入状态
     * @param sectionId 标段Id
     * @param orgCode 企业ID
     * @param importState
     * @return
     * @throws Exception
     */
    Integer updateImportState(String sectionId, String orgCode, Integer importState) throws Exception;

    /**
     * 更新文件解密失败次数
     * @param sectionId 标段Id
     * @param orgCode 企业ID
     * @param importNum
     * @return
     * @throws Exception
     */
    Integer updateImportNum(String sectionId, String orgCode, Integer importNum) throws Exception;


    /**
     * 保存解密信息
     * @param sectionId 标段Id
     * @param orgCode 企业ID
     * @param password
     * @return
     * @throws Exception
     */
    Integer savePassword(String sectionId, String orgCode, String password) throws Exception;

    /**
     * 获取已缴纳保证金单位数
     * @param sectionId
     * @return
     */
    Long getPayDespiteCount(String sectionId);
}
